package com.tilaiedu.mvc.config;

import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

import javax.servlet.Filter;

/**
 * @Author xlzhang
 * @Date 2022/5/24 9:52
 * @Version 1.0
 * @Description 这个类是由tomcat来主动执行，因此需要实现一个接口
 */
public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {
    // 这个方法用来加载根容器的配置类(SpringConfig)
    @Override
    protected Class<?>[] getRootConfigClasses() {
        // 将自定义的Spring配置类设置到数组中
        return new Class[]{SpringConfig.class};
    }

    // 用来加载web容器的配置类(SpringMvcConfig)
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    // 设置DispatchServlet的配置路径
    // 相当于web.xml中的 <url-pattern>/</url-pattern>
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected Filter[] getServletFilters() {
        // 创建字符编码过滤器
        CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
        encodingFilter.setEncoding("UTF-8");
        // 添加到数组中
        return new Filter[]{encodingFilter};
    }
}
